using System;

namespace Update.Utils.Interfaces
{
    /// <summary>
    /// 日志级别枚举
    /// </summary>
    public enum LogLevel
    {
        Debug,
        Info,
        Warning,
        Error,
        Fatal
    }

    /// <summary>
    /// 日志记录帮助类接口
    /// </summary>
    public interface ILogHelper
    {
        /// <summary>
        /// 设置日志文件路径
        /// </summary>
        /// <param name="logFilePath">日志文件路径</param>
        void SetLogFilePath(string logFilePath);

        /// <summary>
        /// 启用或禁用日志记录
        /// </summary>
        /// <param name="enabled">是否启用</param>
        void SetEnabled(bool enabled);

        /// <summary>
        /// 记录调试级别日志
        /// </summary>
        /// <param name="message">日志消息</param>
        /// <param name="args">格式化参数</param>
        void Debug(string message, params object[] args);

        /// <summary>
        /// 记录信息级别日志
        /// </summary>
        /// <param name="message">日志消息</param>
        /// <param name="args">格式化参数</param>
        void Info(string message, params object[] args);

        /// <summary>
        /// 记录警告级别日志
        /// </summary>
        /// <param name="message">日志消息</param>
        /// <param name="args">格式化参数</param>
        void Warning(string message, params object[] args);

        /// <summary>
        /// 记录错误级别日志
        /// </summary>
        /// <param name="message">日志消息</param>
        /// <param name="args">格式化参数</param>
        void Error(string message, params object[] args);

        /// <summary>
        /// 记录错误日志
        /// </summary>
        /// <param name="ex">异常对象</param>
        /// <param name="message">附加消息</param>
        /// <param name="args">格式化参数</param>
        void Error(Exception ex, string message = null, params object[] args);

        /// <summary>
        /// 记录致命错误日志
        /// </summary>
        /// <param name="message">日志消息</param>
        /// <param name="args">格式化参数</param>
        void Fatal(string message, params object[] args);
    }
} 